var express = require('express');
var User = require('./models/user');
var md5 = require('blueimp-md5');
var router = express.Router();
router.get('/',function(req,res){
    //console.log(req.session.user);
    res.render('index.html',{
        user:req.session.user
    })
})
router.get('/login',function(req,res){
    res.render('login.html')
})
router.post('/login',function(req,res){
    var body = req.body;
    User.findOne({
        email:body.email,
        password:md5(md5(body.password))
    },function(err,user){
        if(err){
            return res.status(500).json({
                err_code:500,
                message:err.message
            })
        }
         // 如果邮箱和密码匹配，则 user 是查询到的用户对象，否则就是 null
    if (!user) {
        return res.status(200).json({
          err_code: 1,
          message: 'Email or password is invalid.'
        })
      }
  
      // 用户存在，登陆成功，通过 Session 记录登陆状态
      req.session.user = user
  
      res.status(200).json({
        err_code: 0,
        message: 'OK'
      })
    })

})
router.get('/register',function(req,res){
    res.render('register.html')
})
router.post('/register',function(req,res){
    /**
     * 1.获取表单提交数据
     *   req.body
     * 2.操作数据库
     *   判断用户是否存在，已存在不允许再注册
     * 3.发送响应
     */
    var body = req.body;
    User.findOne({
      $or:[{
        email: body.email
      },
      {
        nickname:  body.nackname
      }
    ]       
    },function(err,data){
    if(err){
        return res.status(500).json({
            success: false,
            message:'服务端错误'
        })
    }
    if(data){
        /* 数据已存在 */
        return res.status(200).json({
            err_code: 1,
            message:'Email or nickname already exists.'
        })
    }
    //密码重复加密md5
    body.password = md5(md5(body.password));
    new User(body).save(function(err,user){
        if(err){
            return res.status(500),json({
                err_code:500,
                message:'Internal error!'
            })
        }
    //注册成功，session记录用户登录状态
    req.session.user = user;
    res.status(200).json({
        err_code:0,
        message:'OK'
    })
    })
    })

})
router.get('/logout',function(req,res){
    // 清除登录状态
    req.session.user = null;
    //重定向到登录页（同步才能跳转）
    res.redirect('/login');
})
module.exports = router;